import ConfigParser

class ConfigurationImport:
    """
    Liest die Konfiguration aus der config.cfg mittels RawConfigParser
    """

    def __init__(self):
        """
        Hier wird ein RawConfigParser erstellt und der Dateiname festgelegt
        """
        self.config = ConfigParser.RawConfigParser()
        self.config.read('config.cfg')

    def getCertificateFile(self):
        """
        Liefert den Dateinamen der SSL Zertifikatsdatei zurueck
        """
        return self.config.get('server', 'certificateFile')
    
    def getKeyFile(self):
        """
        Liefert den Dateinamen der Datei mit dem SSL Schluessel zurueck
        """
        return self.config.get('server', 'keyFile')
    
    def getPort(self):
        """
        Liefert den Serverport zurueck
        """
        return self.config.getint('server', 'port')
    
    def getBeginTime(self):
        """
        Liefert die Serverstartzeit im format von time.asctime() zurueck
        """
        return self.config.get('game', 'beginTime')
    
    def getRounds(self):
        """
        Liefert Rundenzahl zurueck
        """
        return self.config.getint('game', 'rounds')
    
    def getMultiplier(self):
        """
        Liefert Multiplikator zurueck, mit dem die Biestzahl multipliziert wird um die Weltgroesse zu bestimmen: 
        Biester x Multiplikator = Kantenlaenge
        """
        return self.config.getint('game', 'multiplier')
        
    def getNumberOfBeasts(self):
        """
        Liefert Anzahl von Biestern auf der Welt
        """
        return self.config.getint('game', 'beasts')
    
    def getInitialFood(self):
        """
        Liefert zurueck, wieviel Futter jedes Biest anfangs hat
        """
        return self.config.getint('game', 'initialFood')
    
    def getMinFoodEnergy(self):
        """
        Liefert zurueck, wieviel Energieeinheiten eine zufaellig verteilte Futterportion minimal besitzen kann
        """
        return self.config.getint('game', 'minFoodEnergy')
    
    def getMaxFoodEnergy(self):
        """
        Liefert zurueck, wieviel Energieeinheiten eine zufaellig verteilte Futterportion maximal besitzen kann
        """
        return self.config.getint('game', 'maxFoodEnergy')

    def getBorderLength(self):
        """
        Berechnet anhand Biesteranzahl und Multiplikator die Kantenlaenge der quadratischen Welt
        """
        return self.config.getint('game', 'beasts') * self.config.getint('game', 'multiplikator')